import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import sun.text.resources.no.CollationData_no;

import javax.servlet.http.HttpServlet;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: lenovo
 * Date: 2022-11-25
 * Time: 21:58
 */
//使用这个类来封装DateSource的单利 懒汉模式
public class DBUtil extends HttpServlet {
    private  volatile static DataSource dataSource = null;
//    封装构造方法,类外无法调用构造方法,如果其他代码new DBUtil会报错
    private DBUtil(){}
    public static DataSource getInstanceDataSource() {
// 外面这个if是为了避免出现在一次成功完成加锁实例化出对象之后多余的加锁操作对系统资源的消耗
        if(dataSource == null){
            //        线程安全
            synchronized (DataSource.class){
                if(dataSource == null){
                    //数据源
                    dataSource = new MysqlDataSource();
                    ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java105?characterEncoding=utf8&useSSL=false");
                    ((MysqlDataSource)dataSource).setUser("root");
                    ((MysqlDataSource)dataSource).setPassword("");
                }
        }

        }

        return dataSource;
    }
    //构造sql语句

}
